Firebird a cestina

Otázka od: Pavel Hora

12. 4. 2004 18:53

Zdravim,
vim ze se to zde jiz resilo, ale stale ne ku me spokojenosti  
Mam zalozeni databazi s DEFAULT CHARACTER SET ISO8859_2, takze uz nikde u def.
tabulek neuvadim kodovani. Pri zadavani dat pres isql (pred pripojenim nastavim
set names iso8859_2) je vse OK (krome razeni zaznamu, zde se spatne radi ch -
bere se jako c-h - muj 1. problem), ale pokud zadavam data z jinych programu
(take nastaveno iso8859_2) ulozi se do databaze nesmyslne znaky - stejne
nesmysli se pak i prectou. Nevite v cem by to mohlo byt??



Odpovedá: Jan Sebelík

4. 11. 2002 5:23

> Odesílatel: Petr K. <xdelphi@seznam.cz>
> mam nainstalovanej firebird udelam databazi a v ni tabulku a at zkousim
> nastavit cokoliv v charset Win1250 nebo nic nebo ascii tak mi tam bud nejde
> vlozit retezec s CZ znaky nebo pokud jde tak mi nejde nastavit trideni - uz

Jeste COLLATE.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Odpovedá: Kalhous Zdenek

4. 11. 2002 8:09

> mam nainstalovanej firebird udelam databazi a v ni tabulku a at
> zkousim nastavit cokoliv v charset Win1250 nebo nic nebo ascii tak mi
> tam bud nejde vlozit retezec s CZ znaky nebo pokud jde tak mi nejde
> nastavit trideni - uz nevim jak dal. Co s tim ?
Pro spravne trideni jeste COLLATE v definici sloupcu a aby to
fungovalo, musi byt nejen db zalozena s charset ale take klient
pripojeny s odpovidajicim charset.

Odpovedá: Pavel Cisar

12. 4. 2004 21:33

Haj hou!

On 12 Apr 2004 at 19:52, Pavel Hora wrote:

> Mam zalozeni databazi s DEFAULT CHARACTER SET ISO8859_2, takze uz
> nikde u def. tabulek neuvadim kodovani. Pri zadavani dat pres isql
> (pred pripojenim nastavim set names iso8859_2) je vse OK (krome razeni
> zaznamu, zde se spatne radi ch - bere se jako c-h - muj 1. problem),

Collate ISO8859_2 nebo CS_CZ ?

> ale pokud zadavam data z jinych programu (take nastaveno iso8859_2)
> ulozi se do databaze nesmyslne znaky - stejne nesmysli se pak i
> prectou. Nevite v cem by to mohlo byt??

Dle meho program sice deklaruje ze pouziva (nastavi klientsky
charset) iso8859-2, ale data ktera posila na server v tomto kodovani
ve skutecnosti nejsou.

S pozdravem
Pavel Cisar ( ICQ: 89017288)
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase


Odpovedá: Pavel Hora

13. 4. 2004 9:37

K tomu collate : no protoze jak jsem psal jsem pouzil pouze DEFAULT CHARACTER
SET ISO8859_2 u vytvoreni databaze tak predpokladam ISO8859_2. Musi se collate
jeste pouzit u definovani kazde nove polozky var/varchar ? ja myslel, ze kdyz
to neni uvedeno veme se prave nastaveni databaze.

______________________________________________________________
> Od: "Pavel Cisar" <pcb@atlas.cz>
> Komu: delphi-l@clexpert.cz
> CC:
> Datum: Mon, 12 Apr 2004 22:14:18 +0200
> Predmet: Re: Firebird a cestina
>
> Haj hou!
>
> On 12 Apr 2004 at 19:52, Pavel Hora wrote:
>
> > Mam zalozeni databazi s DEFAULT CHARACTER SET ISO8859_2, takze uz
> > nikde u def. tabulek neuvadim kodovani. Pri zadavani dat pres isql
> > (pred pripojenim nastavim set names iso8859_2) je vse OK (krome razeni
> > zaznamu, zde se spatne radi ch - bere se jako c-h - muj 1. problem),
>
> Collate ISO8859_2 nebo CS_CZ ?
>
> > ale pokud zadavam data z jinych programu (take nastaveno iso8859_2)
> > ulozi se do databaze nesmyslne znaky - stejne nesmysli se pak i
> > prectou. Nevite v cem by to mohlo byt??
>
> Dle meho program sice deklaruje ze pouziva (nastavi klientsky
> charset) iso8859-2, ale data ktera posila na server v tomto kodovani
> ve skutecnosti nejsou.
>
> S pozdravem
> Pavel Cisar ( ICQ: 89017288)
> Mobil: 724 281429
> http://www.ibphoenix.cz
> Vse co potrebujete pro Firebird a InterBase
>
>
>



Odpovedá: Pavel Cisar

13. 4. 2004 10:23

Haj hou!

On 13 Apr 2004 at 10:19, Pavel Hora wrote:

> K tomu collate : no protoze jak jsem psal jsem pouzil pouze DEFAULT
> CHARACTER SET ISO8859_2 u vytvoreni databaze tak predpokladam
> ISO8859_2. Musi se collate jeste pouzit u definovani kazde nove
> polozky var/varchar ? ja myslel, ze kdyz to neni uvedeno veme se prave
> nastaveni databaze.

Pokud nechces binarni porovnavani, tak ano   pro kazdy charset muze
byt hafo collate, a pokud nereknes jaky doopravdy potrebujes, tak se
pouzije collate pro binarni porovnavani v ramci charsetu (ma stejny
nazev jako charset). To by mimochodem vysvetlovalo to spatne trideni
Ch  

S pozdravem
Pavel Cisar ( ICQ: 89017288)
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase


Odpovedá: Pavel Hora

13. 4. 2004 13:36

Hm, tak jsem napsal k varchar collate cs_cz a furt mam ch pred h. Napisi ukazku
co delam (v isql).
set names iso8859_2;
create database ... default character set 8859_2;
create table neco (text varchar(30) collate cs_cz,...);

vlozim tam par dat a ch je stale pred h. Cim tot ?